/**
 * Projekt do předmetu GJA - LATEX TABLE CREATOR
 *
 * Soubor: CellFont.java
 *
 * @author Ondřej Kubal  <xkluba00@stud.fit.vutbr.cz>
 * @author Petr Šimon    <xsimon10@stud.fit.vutbr.cz>
 */

package table;

import java.awt.*;

/**
 * Interface spravující přístup k nastavování prarametrů písma
 * (Data uložená v <code>AttributiveCellTableModel</code>)
 * (Implementace v <code>DefaultCellAttributeData</code>)
 */
public interface CellFont
{
     /** Nulovací flag */
     public final int FLAG_NONE     = 0     ;
     /** Tučné písmo */
     public final int FLAG_B        = 1     ;
     /** Kurzíva */
     public final int FLAG_I        = 1 << 1;
     /** Proporcionální písmo \tt */
     public final int FLAG_T        = 1 << 2;
     /**
      * Horizontální zarovnání textu
      * FLAG_H_A1==0 & FLAG_H_A2 ==0 -> left
      * FLAG_H_A1==1 & FLAG_H_A2 ==0 -> center
      * FLAG_H_A1==1 & FLAG_H_A2 ==1 -> right
      */
     public final int FLAG_H_A1     = 1 << 3;
     /**
     * Horizontální zarovnání textu
     * FLAG_H_A1==0 & FLAG_H_A2 ==0 -> left
     * FLAG_H_A1==1 & FLAG_H_A2 ==0 -> center
     * FLAG_H_A1==1 & FLAG_H_A2 ==1 -> right
     */
     public final int FLAG_H_A2     = 1 << 4;
     
     public final int FLAG_V_CENTER = 1 << 6;
     public final int FLAG_V_TOP    = 1 << 7;
     public final int FLAG_V_DOWN   = 1 << 8;
     
     /**
     * Vrátí písmo dané buňky
     * @param row řádek buňky
     * @param column sloupec buňky
     * @return písmo buňky
     */
     public Font getFont(int row, int column);
     
     /**
     * Nastaví písmo dané buňky
     * @param row řádek buňky
     * @param column sloupec buňky
     */
     public void setFont(Font font, int row, int column);
     
     /**
     * Nastaví písmo vybraných buněk
     * @param písmo buňky
     * @param rows vybrané řádky
     * @param columns vybrané sloupce
     */
     public void setFont(Font font, int[] rows, int[] columns);
     
     /**
      * Vrátí atributy písma dané buňky
      * (Atributy jsou popsány výše)
      * Jze je slučovat operátorm + či or
      * @param row řádek buňky
      * @param column sloupec buňky
      */
     public int getFontAtt(int row, int column);
     
     /**
      * Nastaví atributy písma dané buňky
      * (Atributy jsou popsány výše)
      * Jze je slučovat operátorm + či or
      * @param row řádek buňky
      * @param column sloupec buňky
      */
     public void setFontAtt(int att, int row, int column);
     
     /**
      * Nastaví atributy písma vybraných buněk
      * (Atributy jsou popsány výše)
      * Jze je slučovat operátorm + či or
      * @param rows vybrané řádky
      * @param columns vybrané sloupce
      */
     public void setFontAtt(int att, int[] rows, int[] columns);
     
     /**
      * Odnastaví atributy písma vybraných buněk
      * (Atributy jsou popsány výše)
      * Jze je slučovat operátorm + či or
      * @param rows vybrané řádky
      * @param columns vybrané sloupce
      */
     public void unsetFontAtt(int att, int[] rows, int[] columns);
}
